In the field of automated character recognition processing, individual input pieces comprising an input stream undergo processing in order to identify characters or character strings contained within the input pieces. Characters can be alphabetic, numeric, symbolic, punctuation marks, etc., and they may be hand written or machine printed. Examples of typical input pieces can include data forms, mail envelopes, bank checks, or several other types of documents or items that have characters for recognition.
Depending on the particular type of input stream, a single character may be the subject of the recognition procedures, or several characters may be combined together into a character string that is to be recognized. The recognition process may occur using various well-know technologies. For example, with optical character recognition technology, a scanner is used to scan the light and dark areas of a character on the input piece and generate a corresponding digital representation of that character. In magnetic character recognition, a magnetic reader or sensor is used to create a digital representation of characters printed with magnetic ink.
In typical practice, character recognition processing generates result strings (strings of recognized characters) which are generally quite close to what is actually on the input piece. However, it is not unusual for character recognition processes to have uncertainty about some characters, or about the exact point of separation between characters. Sometimes, characters are incorrectly recognized, resulting in improper substitution, joinder, or separation of characters reported in the result string. A typical cause for error in a character recognition engine result string is poor quality or lack of clarity in the original input piece. Poor printing, sloppy handwriting, smearing, stray marks or lines, or printing atop of graphics, form background, or colored or shaded areas can all cause errors in the recognition process.
Manufacturers of character recognition engines have adopted various techniques to improve character recognition results. Existing techniques, however, have significant limitations. For example, one known technique is to generate multiple character possibilities for each potentially ambiguous character being recognized. A probability or confidence indication is then assigned to each result possibility. The character with the highest confidence is then selected for the result output. While this technique can improve results in many circumstances, picking the highest probability character does not always result in a correct result string. This technique generates result strings with a high probability of being correct, but it does not have the ability to verify the result string against objective standards.
Another known technique is to obtain a result string (such as a word) through recognition processing and then validate the result string against a database of known or acceptable result strings (such as a word dictionary or other type of “look-up” dictionary) to determine whether the result is valid. While this technique provides some measure of objective validation, it is limited in that the system querying the database only does so as a final step in the character recognition process. If a string is determined invalid, prior art character recognition engines cannot effectively adapt or attempt alternate recognition approaches to generate a valid character recognition result.
Some existing character recognition systems attempt to rescan or capture a new digital representation of the input piece if the character recognition procedure is unsuccessful with the first digital representation. The same character recognition procedure is then employed with the new digital representation. This technique also has significant limitations. Often when a character recognition engine is expected to process an input stream including numerous input pieces passing the digital capture mechanism at a great rate of speed, it is difficult to interrupt the input stream in order to re-route the input piece by the digital capture mechanism for generating a second digital representation. Further, the unsuccessful recognition process may be a result of the configuration of the system, and reprocessing a second image according to the same recognition procedure may not improve the results.
Finally, some systems operating under requirements of high recognition accuracy will use multiple character recognition engines, each conducting a separate recognition procedure, in an attempt to recognize successfully, on the whole, more characters than any one recognition engine could recognize functioning independently. This type of system benefits from the implementation of orthogonal technology. As used throughout this specification and the attached claims, the term “orthogonal” is used in the mathematical sense to refer to items that are not related or provide independent results. Because each recognition engine conducts a different recognition procedure, it may successfully recognize some of the input pieces that were unsuccessfully recognized by the other engines.
However, truly orthogonal systems are typically cost prohibitive. The licensing or operation costs associated with implementing additional recognition engines often makes true orthogonal systems impracticable. Also, consistent with the law of diminishing returns, with the addition of each new engine (and its associated cost), less and less overall benefit is obtained. While a first engine may successfully recognize the majority of the input pieces, a second engine may successfully recognize only a small fraction of the input pieces that were not successfully recognized by the first engine. A third engine, although it may cost the same as the other engines, may successfully recognize only a few images that were not recognized by either of the first two engines. Attempts to operate too many engines quickly becomes too cost prohibitive.
What is needed is a system and procedure for optical character recognition that captures the benefits of the above techniques without suffering from the corresponding limitations. The present invention fulfils this need.